#ifndef AGV_SEND_API_COMMANDS_H
#define AGV_SEND_API_COMMANDS_H

#include <QDialog>
#include <QMessageBox>
#include <QTableWidget>
#include "MyDatabase.h"
#include "CommandSendorReceive.h"

namespace Ui {
class AGV_Send_API_Commands;
}

class AGV_Send_API_Commands : public QDialog
{
    Q_OBJECT

public:
    /**
     * @brief  构造函数和析构函数
     */
    explicit AGV_Send_API_Commands(QWidget *parent = nullptr);
    ~AGV_Send_API_Commands();

signals:
    /**
     * @brief  数据库打开失败信号
     */
    void sendDBerror();

public slots:
    /**
     * @brief  显示索引指定界面，控件数据初始化
     * @param  table  控件QTableView对象指针
     * @param  index  界面索引
     * @param  function_code  协议功能码
     * @param  tableindex  表格某单元格索引
     */
    void showDisplay_View(QTableView* table,
                     const int& index,
                     const int& function_code,
                     const int& tableindex);

private slots:
    /**
     * @brief  发送AGV重定位协议
     */
    void on_pushButton_send_relocation_clicked();

    /**
     * @brief  发送map地图相关协议
     */
    void on_pushButton_send_map_clicked();

    /**
     * @brief  发送AGV避障策略查询协议
     */
    void on_pushButton_send_strategy_query_clicked();

    /**
     * @brief  发送AGV避障策略修改协议
     */
    void on_pushButton_send_strategy_alter_clicked();

private:
    Ui::AGV_Send_API_Commands *ui;
    int _function_code;
};

#endif // AGV_SEND_API_COMMANDS_H
